In a data communication system, particularly a wireless data communication system, packets of data may be lost for various reasons, including poor channel conditions. The data communicated between two end users may pass through several layers of protocols for assuring proper flow of data through the system, where each layer adds certain functionality to the delivery of the data packet from a source user to a destination user. The proper delivery of data in at least one aspect is assured through a system of checking for error in each packet of data, and automatically requesting a retransmission of the same packet of data (ARQ mechanism), if an error is detected in the received packet of data. Independent ARQ mechanisms may be employed at different protocol layers for flowing data between corresponding end users. The data packets are sequentially delivered from one protocol layer to another. The sequential delivery is performed by transferring a group of data packets at a time in a series of packets of data from one protocol layer to another. A group of data packets may not be transferred until the process for retransmission of the erased packets of data in the group in the lower protocol layer has been completed. The retransmission request for retransmitting an erased packet of data may be repeated several times or the retransmission may take several times until the erased packet of data is received correctly at the destination. As a result, the retransmission process at one protocol layer may slow down the flow of data between different protocol layers in the system. In the mean time, the higher layer protocol may prematurely request for retransmission of all the packets of data in the group including those received successfully at the lower layer, resulting in a very inefficient use of communication resources when flow of data from one protocol layer to another is slow. As such, minimizing the lower layer packet losses due to erasures over the air link is important as much as minimizing the delay of multiple retransmissions, in the event of a packet loss. Therefore, there is a tradeoff between the number of retransmission attempts by a lower layer protocol layer and the delay resulting from such retransmissions that must be considered in the ARQ mechanisms for end-to-end delivery of data packets.
To this end as well as others, there is a need for a method and apparatus to efficiently control flow of data in a communication system.